goog.provide('dkpoints.models.Raid');

goog.require('dkpoints.models.Item');
goog.require('dkpoints.models.Raider');


/**
 * @fileoverview
 * Raid objects encapsulate the details of a given raid:
 * - List of players
 * - List of loot (including item, receiver, and price)
 * - Date, instance, boss.
 */



/**
 * A Raid object.
 * @constructor
 */
dkpoints.models.Raid = function() {
  /**
   * @type {!Array.<dkpoints.models.Raider>}
   * @private
   */
  this.players_ = [];

  /**
   * @type {!Array.<dkpoints.models.Item>}
   * @private
   */
  this.loot_ = [];

  /**
   * @type {Date}
   * @private
   */
  this.date_ = null;

  /**
   * Some identifying name, such as the boss or bosses killed.
   * @type {string}
   * @private
   */
  this.name_ = '';

  /**
   * @type {string}
   * @private
   */
  this.instance_ = '';

  /**
   * The unique identifier for this raid.
   * @type {number}
   * @private
   */
  this.id_ = -1;
};


/**
 * Clone this raid object.
 * @return {dkpoints.raid.Raid} The clone of this raid object.
 */
dkpoints.models.Raid.prototype.clone = function() {
  var clone = new dkpoints.models.Raid();
  return clone;
};
